import org.w3c.dom.ls.LSOutput;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:lenovo
 * Date:2024-04-26
 * Time:16:15
 */






public class Test {
    public static void main1(String[] args) {
        /*int a=10;
        int b=++a;
        int b=a++;
        System.out.println(a);
        System.out.println(b);*/
        int a = 10;
        int b = 20;
        //System.out.println(a==b);//表示式的结果都是一个布尔值true or false
        //System.out.println(3<a<5);
        //true or false 和5进行大小比较
        //两边类型不一致所以不能比较
        //System.out.println(a>b||a==10);
        //短路与
        //System.out.println(a>b && 10/0==0);
        System.out.println(!true);
        System.out.println(!!false);
    }

    public static void main2(String[] args) {
        int a = 10;
        int b = 20;
        //&也可以应用于逻辑运算，但是不存在短路现象
        System.out.println(a < b & 10 > 0);
        System.out.println(a > b & 10 > 0);
        System.out.println(a < b & 10 < 0);
        System.out.println(a > b & 10 < 0);
        //System.out.println(a>b&10/0==0);
        //把后面的表达式也执行了
    }

    public static void main3(String[] args) {
        /*byte a=-1;
        System.out.println(a>>>1);*/
        int a = 10 > 20 ? 10 : 20;
        System.out.println(a);
        ;//20
        boolean flag = (true == true) ? (true == false ? false : true) : false;
        //              表达式1         表达式2               表达式3
        //boolean flag=true==true?true==false?false:true:false;
        //通过加括号标明优先级
        System.out.println(flag);//true
    }

    public static void main4(String[] args) {
        /*boolean flag=true;
        if(flag)//（条件表达式）括号中必须是一个布尔表达式
        {
            System.out.println("嘻嘻");
        }else {
            System.out.println("不嘻嘻");
        }*/
        //判断一个年份是否为闰年
        /*int year=2024;
        if(year%100==0){
            //判断世纪闰年
            if(year%400==0){
                System.out.println("是闰年");
            }else {
                System.out.println("不是闰年");
            }
        }else {
            //普通闰年
            if(year%4==0) {
                System.out.println("是闰年");
            }else {
                System.out.println("不是闰年");
            }
        }*/
    }

    public static void main5(String[] args) {
        int a = 1;
        //switch语句括号里的表达式不能是float,double,long,boolean
        //也不能是一个复杂表达式,例如：a>10
        //支持嵌套，但是很丑
        switch (a) {
            case 1:
                System.out.println("haha");
                break;
            case 2:
                System.out.println("嘿嘿");
                break;
            case 3:
                System.out.println("huhu");
                break;

        }

    }

    public static void main6(String[] args) {
        //打印1到10
        //int i = 1;
        /*while(i<=10){
            System.out.println(i);
            i++
        }*/
        /*while (i <= 10) {
            //不换行,去掉ln
            System.out.print(i++);
        }
        while (i <= 10) {
            System.out.print(i + " ");
            i++;
        }*/
        //求1!+2!+3!+4!+5!...
        // 1+2+6+24+120
        int add=0;
        int i=1;
        while(i<=5){
            int j=1;
            int ret=1;
            while(j<=i){
                ret*=j++;
            }
            i++;
            add+=ret;
        }
        System.out.println(add);
    }

    public static void main7(String[] args) {
        int i=1;
        while(i<=7)
        {
            if(i==3){
                break;
            }
            System.out.println(i);
            i++;
        }
        /*while(i<=7)
        {
            if(i==3){
                i++;//这一步很重要，不然会发生死循环
                continue;
            }
            System.out.println(i);
            i++;
        }*/
    }

    public static void main8(String[] args) {
        //求出1-100之间所有既能被3整除，又能被5整除的数字
        int num=1;
        while(num<=100){
            if(num%15!=0){
                num++;
                continue;
            }
            System.out.println(num);
            num++;
        }
    }

    public static void main9(String[] args) {
        //for循环
        //for(表达式1;表达式2(布尔表达式);表达式3)
        /*for(int i=1;i<=10;i++){
            System.out.println(i);
        }*/
        /*for (int i = 0; i < 10; i++) {
            System.out.println(i);
        }*/
        //快捷键
        //10.fori
        /*for (int i = 0; i < 10; i++) {

        }*/
        /*int a=10;
        //a.sout
        System.out.println(a);*/
        int sum=0;
        for (int i = 1; i <=5 ; i++) {
            int ret=1;
            for (int j = 1; j <=i ; j++) {
                ret*=j;
            }
            sum+=ret;
        }
        System.out.println(sum);
    }

    public static void main(String[] args) {
        //Java中的输入比较麻烦，需要分三步
        //1.导入包（类似头文件）
        //2.准备工作
        //3.变量.nextInt();读入一个整数
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        System.out.println("请输入你的姓名");
        String name=scanner.nextLine();

        System.out.println("请输入你的年龄");
        int age=scanner.nextInt();

        int sum=0;
        for (int i = 1; i <=n ; i++) {
            int ret=1;
            for (int j = 1; j <=i ; j++) {
                ret*=j;
            }
            sum+=ret;
        }
        System.out.println(sum);
        //Java中的输出
        System.out.println("输出且换行");
        System.out.print("输出但不换行");
        System.out.printf("%d\n",19);//格式化
    }


}




//运算符

//逻辑运算符
//一个表达式的计算结果一定是一个布尔类型的值
//&& || !

//短路与
//当两个表达式同时为真 结果就是真
//但是当第一个表达式为假的时候  全假  整个表达式就不往后执行了

//短路或
//当两个表达式同时为假 结果就是假
//但是当第一个表达式为真的时候  全真  整个表达式就不往后执行了

//位运算符
//&:按位与
//0101 1011
//0011 1001
//---------
//0001 1001
//运算规则：有0就是0

//|:按位或
//运算规则：有1就是1

//^：按位异或
//0101 1011
//0011 1101
//---------
//0110 0110
//运算规则：相同为0，不同为1
//n^n=0;
//0^n=n;

//~：按位取反
//运算规则：1变0.0变1

//移位操作符（byte为例）
//左移    右移

//左移
//0000 1011 11
//0000 1011 11  <<1左移1个比特位
//向左移动，右边补0
//0001 0110 22
//左移x位,这个数n扩大2^x倍

//右移
//与左移同理
//但是右移在左边补符号位
//符号位为0则补0
//符号位为1则补1
//右移x位,这个数n缩小2^x倍

//无符号右移>>>
//-1    1111 1111(补码)
//1111 1111 >>> 0111 1111
//变成了一个很大的正数


//条件运算符/三目运算符
//> ? :

//逻辑控制
//顺序   选择(分支)   循环

//风格选择：括号位置区别于c

//悬垂else问题——else的匹配问题

//switch

//break和continue





















